package com.briup.day15;

import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class Test_Comparator {
    public static void main(String[] args) {
        //自定义比较器对象
        //匿名内部类只可以实例化一次，但可以多次调用(就是不能，在实例化一个，然后重写其他的方法，
        // 但是普通方法不是，普通方法可以多次实例化，然后更改方法的具体实现)
        //这里使用内部类是因为，我们相使用compare的方法，但这个方法是存在于compartor的，但他是接口，不能实例化，所以用多态，接口指向多态，就可以用接口
        // 了，并且也能创建个类，然后就可以多次调用它
        Comparator<Person1> comp = new Comparator<Person1>() {
            //如果AGE相同，在按照name降序
            @Override
            public int compare(Person1 o1, Person1 o2) {
                int r = o1.getAge() - o2.getAge();
                if (r == 0)
                    return o1.getName().compareTo(o2.getName());
                return r;
            }
        };
        Set<Person1> set = new TreeSet<Person1>(comp);
        set.add(new Person1("zs", 20));
        set.add(new Person1("ls", 19));
        set.add(new Person1("ww", 23));
        set.add(new Person1("tom", 21));
        set.add(new Person1("ronda", 20));
    }
}
    class Person1{
        private String name;
        private int age;
        public Person1(String name,int age) {
            this.age = age;
            this.name = name;
        }
        public Person1() {
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public String toString() {
            return "Person{" +
                    "age=" + age +
                    ", name='" + name + '\'' +
                    '}';
        }

    }

